1. Field of the Invention
The invention relates generally to storage system performance and more specifically relates to methods and apparatus for improving throughput in communications between an initiator/host device and a Serial Advanced Technology Attachment (SATA) target device.
2. Discussion of Related Art
In storage systems, a host system communicates with one or more storage devices. In SATA storage systems, an initiator/host device (e.g., a host system) communicates with a SATA target device (e.g., a SATA storage device such as a disk drive). The SATA protocol evolved as a high speed, low cost alternative to Parallel Advanced Technology Attachment (PATA) coupling between an initiator and a target. In PATA, there existed a need to coordinate the operation of direct memory access (DMA) high speed transfers from the host to the disk so that the host (initiator) would not overrun the capability of the target (disk) to receive data. The PATA disk drive typically had a limited buffer memory for receiving high-speed data under DMA control from the host. To coordinate these transfers PATA standards included a handshake protocol whereby the disk drive would signal the host that it was capable of receiving a DMA transfer of data up to a maximum buffer size (a “DMA SETUP” message was sent from the PATA disk drive to the host). Next, the disk would send a “DMA ACTIVATE” signal to the host indicating it was now ready for a DMA transfer up to the maximum buffer size specified in the DMA SETUP signal. The host would then perform that DMA transfer and await a next signal (a next DMA ACTIVATE) from the disk drive indicating that it was again ready for another DMA transfer. This handshake continued until the entire transfer from the disk was completed.
As SATA was introduced, the SATA standards included the same DMA SETUP and DMA ACTIVATE messages transmitted from the SATA target device (e.g., disk drive) to the initiator device (e.g., host system). These messages are transmitted as Frame Information Structures (FIS) in the SATA protocol and are discussed in the Native Command Queuing (NCQ) aspects of the SATA standards. The SATA standards are well known to those of ordinary skill in the art and are generally available at www.serialata.org. SATA protocols may also be used in a Serial Attached SCSI (SAS) domain through use of the SATA Tunneling Protocol (STP) in a SAS initiator (i.e., a SAS/STP initiator). SAS and STP specifications are well known to those of ordinary skill in the art and are generally available at www.t10.org.
The SATA protocol standardizes the maximum DMA transfer associated with each DMA ACTIVATE message as 8 kilobytes. This DMA related handshake mechanism throttles the performance of the initiator/host in that each DMA transfer of 8 KB is delayed awaiting receipt of the next DMA ACTIVATE. In addition, the initiator device may be required to perform administerial setup and configuration of a DMA transfer multiple times to start and stop the DMA circuits for a next 8 KB transfer by the initiator device in response to receipt of each DMA ACTIVATE message. This additional overhead processing in the initiator/host reduces the overall performance of a SATA storage system.
Many present SATA target devices, including rotating disk drives, are capable of receiving far more than 8 KB at the full rated speed of the SATA communication link (e.g., 3 GB/sec or approximately 300 MB/sec). Still further, SATA semiconductor storage devices (e.g., RAMdisks or flash drives) may be capable of receiving data continuously at the rated speed of the SATA communication link. Thus, the overhead processing of awaiting receipt of a DMA ACTIVATE and any associated re-configuring of the DMA circuits of the initiator may impose a severe performance penalty on the SATA storage system.
Thus, it is an ongoing challenge to improve performance of a SATA storage system.